<template>
  <div class="person">
    <h1>中国</h1>
    <h2 ref="title2">福州</h2>
    <h3>软件园</h3>
    <button ref="btn2" @click="showLog">点我输出h2这个元素</button>
  </div>
</template>

<!--
## 【标签的 ref 属性】
作用：用于注册模板引用。
* 用在普通`DOM`标签上，获取的是`DOM`节点。
* 用在组件标签上，获取的是组件实例对象。
-->

<!-- 子组件Person.vue中要使用defineExpose暴露内容 -->
<script lang="ts" setup name="Person">
import { ref } from 'vue';

// 数据
let title2 = ref()
let btn2 = ref()
let a = ref(0)
let b = ref(1)
let c = ref(2)

const showLog = () => {
  console.log(title2.value)
  console.log(btn2.value)
}


// 使用defineExpose将组件中的数据交给外部
defineExpose({ a, b, c })
</script>

<style scoped>
.person {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

button {
  margin: 0 5px;
}

li {
  font-size: 20px;
}
</style>